package com.ybkj.o2o.mc.manager;


import com.ybkj.o2o.mc.common.DataGrid;
import com.ybkj.o2o.mc.common.transport.PassengerConcatsResult;
import com.ybkj.o2o.mc.entity.PassengerConcats;

import java.util.List;

/**
 * Created by shine on 15/8/19.
 */
public interface PassengerConcatsManager {
  /**
   * 根据用户主键与电话号码查询常用联系人是否已经存在.
   *
   * @param phone       电话号码
   * @param passengerId 乘客主键
   * @return true 存在 ， false 不存在
   */
  boolean exists(String phone, Long passengerId);

  /**
   * 保存乘客紧急联系人信息.
   *
   * @param concats 联系人信息
   * @return 联系人信息
   */
  PassengerConcats insert(PassengerConcats concats);

  /**
   * 根据联系人Id和乘客Id查询联系人.
   *
   * @param concatsId   联系人信息主键
   * @param passengerId 乘客主键
   * @return 联系人信息
   */
  PassengerConcats findByConcatsAndPassenger(Long concatsId, Long passengerId);

  /**
   * 根据联系人主键与乘客主键删除紧急联系人.
   *
   * @param concatsId   联系人主键
   * @param passengerId 乘客主键
   * @return 受影响行数
   */
  int deleteByIdAndPassengerId(Long concatsId, Long passengerId);

  /**
   * 修改乘客的紧急联系人.
   */
  int update(PassengerConcats concats);

  /**
   * 查询乘客的联系人.
   */
  List<PassengerConcats> findByPassengerId(Long passengerId);

  /**
   * 分页查询乘客紧急联系人信息.
   *
   * @param passengerId 乘客主键为null则查询所有，否则查询指定乘客下的信息
   * @param page        页码
   * @param rows        每页显示数量
   */
  DataGrid<PassengerConcatsResult> findByPassengerForPage(Long passengerId, int page, int rows);
}
